#ifndef MPWIN32FUNC_H
#define MPWIN32FUNC_H

/******************************
 *
 * 名   称：   WINDOWS API 相关的公共函数
 * 作用范围：   公共的
 * 创建时间：   2022-10-03
 * 备   注：
 *
 ******************************/

#include "mpConfig.h"
#include <string>
#include "string.h"

#if defined(PLATFORM_WINDOWS)

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <shlobj.h>
#include <TlHelp32.h>
#include "sddl.h"

namespace MP{
namespace Win32Func{

//获取当前登录用户的TOKEN
bool mpsGetCurrentLogonUserToken(HANDLE & hToken);
//获取运行程序的用户Local目录
bool mpsGetDefaultUserLocalPath(std::wstring & localPath);
//获取运行程序的用户桌面目录
bool mpsGetDefaultUserDestopPath(std::wstring & destopPath);
//获取所有用户的公共目录
bool mpsGetDefaultAllUserLocalPath(std::wstring & localPath);

//获取当前登录用户的Local目录（针对以SYSTEM用户运行的SVR服务程序）
bool mpsGetCurrentLogonUserLocalPath(std::wstring & localPath);
//获取当前登录用户的Roaming目录（针对以SYSTEM用户运行的SVR服务程序）
bool mpsGetCurrentLogonUserRoamingPath(std::wstring & roamingPath);

//获取当前登录用户名称
bool mpsGetCurrentLogonUserName(std::wstring & userName);
//获取当前登录用户名称和SID
bool mpsGetCurrentLogonUserNameAndSid(std::wstring & userName, std::wstring & sid);

}   //END Win32Func
}   //END MP

#endif // PLATFORM_WINDOWS

#endif // MPWIN32FUNC_H
